SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TCMOVI_BANC_I11]    
/*---------------------------------------------------------*/        
/*---Empresa              : OFISIS S.A.                  --*/        
/*---Cliente              : OFISIS S.A.                  --*/        
/*---Sistema              : Tesoreria                    --*/        
/*---M¸dulo               : Empresa                      --*/        
/*---Programa             : Procedimiento para generar   --*/        
/*---                       Cheques para Trabajadores    --*/              
/*---Script               : ttproc_i.sql                 --*/        
/*---Nombre SP            : SP_TCMOVI_BANC_I11           --*/        
/*---Desarrollado por     : Javier Flores A.             --*/        
/*---Fecha Creaci¸n       : 29/10/2003                   --*/        
/*---Base Datos           : Microsoft Sql Server         --*/        
/*---Versi¸n              : 8.0                          --*/        
/*---Invoca a SP          :                              --*/        
/*---------------------------------------------------------*/        
/*---------------------------------------------------------*/        
/*---Modificado 1 por     :Luis Avila Poma     --*/        
/*---Fecha Modificacion   :13/01/2009      --*/    
/*---Detalle Modificacion :Modificacion del SP para      --*/        
/*---        otras Opciones (OFIPLAN)      --*/         
/*---------------------------------------------------------*/        
/*---------------------------------------------------------*/        
/*---Modificado 2 por     :         --*/        
/*---Fecha Modificacion   :         --*/         
/*---Detalle Modificacion :         --*/        
/*---------------------------------------------------------*/        
/*---Comentarios                                         --*/        
/*---                                                    --*/        
/*---------------------------------------------------------*/        
/*---------------------------------------------------------*/        
/*--- Drop Proc SP_TCMOVI_BANC_I11       --*/        
/*--- Grant Execute on SP_TCMOVI_BANC_I11 to public      --*/         
/*--- SP_TCMOVI_BANC_I11 'OFISIS','001','01','001','CRE','192-0248352-0-05',  
  '2011','11','2011-11-15','2011-11-15','156','',1,'N','N','EMP','EMPLEADOS','SOL','SOL','','2011','02',  
  'PLA','CHE',9249.12,NULL,'000000000000133'        --*/        
/*---------------------------------------------------------*/        
@ISCO_USUA_MODI  TD_VC_008_USUA,    
@ISCO_UNID_TESO  TD_VC_003,    
@ISCO_EMPR   TD_VC_002,            
@ISCO_UNID_PLAN  TD_VC_003,    
@ISCO_BANC   TD_VC_003,         
@ISNU_CNTA_BANC  TD_VC_020,        
@ISAA_BNCO   TD_VC_004,        
@ISMM_BNCO   TD_VC_002,        
@IDFE_OPER   TD_DT_001,         
@IDFE_CHEQ   TD_DT_001,     
@ISCO_TIPO_OPER  TD_VC_003,        
@ISCO_SUBR   TD_VC_003,         
@INFA_TIPO_CAMB  TD_NU_015_006,         
@ISTI_CORR_INEG  TD_VC_001,        
@ISST_ASTO_RESU  TD_VC_001,        
@ISTI_PLAN   TD_VC_003,        
@ISDE_CPTO   TD_VC_050,        
@ISCO_MONE_PLAN  TD_VC_003,        
@ISCO_MONE_CNTA  TD_VC_003,        
@ISCO_CPTO_FORM  TD_VC_006,        
@INNU_ANNO   TD_IN_001,        
@INNU_PERI   TD_IN_001,    
@ISOP_TRAB   TD_VC_003,    
@ISCO_TIPO_DOCU  TD_VC_003,     
@INIM_TOTA   TD_NU_016_004,     
@INNU_CHEQ_USAD  TD_IN_001,     
@ISNU_DOCU_BANC  TD_VC_020     
As    
Declare        
        
@CSCO_TRAB   TD_VC_020,        
@CDFE_OPER   TD_DT_001,         
@CNFA_TIPO_CAMB  TD_NU_015_006,         
@CSCO_TIPO_OPER  TD_VC_003,        
@CSCO_SUBR   TD_VC_003,        
@CNNU_DATO_CALC  TD_NU_016_004,        
@CSNO_TRAB   TD_VC_200,        
@CSCO_MONE   TD_VC_003,        
@VNCO_NUEV_NUME  TD_IN_001,         
@VSCO_NUEV_CHAR  TD_VC_008,        
@VNNU_REGI   TD_IN_001,        
@VNUL_CORR_EGRE  TD_IN_001,        
@VNUL_CORR_INEG  TD_IN_001,        
@VNUL_CORR_AJUS  TD_IN_001,         
@VSST_INTE_BACH  TD_VC_001,        
@VSTI_OPNI_CARG  TD_VC_003,        
@VSTI_OPNI_ABON  TD_VC_003,        
@VNFE_0001   TD_IN_001,        
@VSNU_CHEQ   TD_VC_020,        
@VSNU_ULTI_CHEQ  TD_VC_020,        
@VNNU_CHEQ   TD_IN_001,        
@VSTI_ENTI   TD_VC_001,        
@VSNU_CHEQ_ANTE  TD_VC_020,        
@VSCO_MONE_EXTR  TD_VC_003,        
@VSCO_MONE_NACI  TD_VC_003,        
@VSTI_CAMB_0002  TD_VC_001,        
@VSTI_ORIG   TD_VC_001,        
@VNIM_MOVI   TD_NU_016_004,        
@OSNU_COMP_BANC  TD_VC_008,        
@ONNU_ERRO   TD_IN_001,        
@VNAA_BNCO   TD_IN_001,        
@VNMM_BNCO   TD_IN_001,        
@VSCO_OPRC_CNTB  TD_VC_003,        
@VNNU_SECU   TD_IN_001,     
@VNNU_SECU_CHEQ     TD_IN_001,     
@VNNU_SECU_DIST  TD_IN_001,    
@VSST_CHEQ_UNID  TD_VC_001, /* Control de chequeras por unidad */       
@VSCO_CNTA_EMPR  TD_VC_020,               
@VSTI_DOCU_CHEQ  TD_VC_003,    
@VSTI_NUME_CHEQ  TD_VC_001,    
@VSNU_DOCU_BANC  TD_VC_020,    
    
@CSNO_BENE   TD_VC_100,    
@CDFE_LIQU   TD_DT_001,    
@CDFE_AMPL   TD_DT_001,    
@CSNU_DOCU_BANC  TD_VC_020,    
@CNNU_DATO_CONV  TD_NU_016_004,    
@CNNU_CHEQ_USAD  TD_IN_001,     
@CDFE_CHEQ   TD_DT_001,   
@VSDE_GLOS_ULTI  TD_VC_100,    
@VSNO_UNID_CNTB  TD_VC_100,   
@VSDE_OBSE_0001  TD_VC_100,  
@VSDE_OBSE_0002  TD_VC_100,  
@VSNO_EMPL   TD_VC_100,  
@VSNO_BENE   TD_VC_100,   
@VNNU_CANT_REGI  TD_IN_001,  
@VSST_OPCI_PLAN  TD_VC_003  
        
Begin Tran SP_TCMOVI_BANC_I11        
        
 /** inserta en la cabecera de bancos **/        
    
 Select @VSST_INTE_BACH = ST_INTE_BACH,        
   @VSTI_OPNI_CARG = CO_TIPO_OPEG,         
   @VSTI_OPNI_ABON = CO_TIPO_OPER,         
   @VSCO_MONE_NACI = CO_MONE_DEFA,        
   @VSCO_MONE_EXTR = CO_MONE_EXTR,        
   @VSTI_CAMB_0002 = TI_CAMB,         
   @VSTI_ORIG      = TI_ORIG,    
   @VSST_CHEQ_UNID = IsNull(ST_CHEQ_UNID,'N')        
 From TMPARA_TESO         
 Where CO_EMPR = @ISCO_EMPR        
    
 --Tipo de documento (Cheque)    
 Select @VSTI_DOCU_CHEQ = TI_DOCU    
 From TTDOCU_CNTB    
 WHERE ST_DOCU_0029 = 'S'    
    
 Select @VNNU_SECU = IsNull(Max(NU_SECU),0) + 1        
 From TDTRAB_PROC        
 Where CO_EMPR = @ISCO_EMPR      
    
 If @VSST_INTE_BACH = 'N' AND @ISST_ASTO_RESU = 'N' AND         
  @ISCO_TIPO_OPER != @VSTI_OPNI_CARG AND @ISCO_TIPO_OPER != @VSTI_OPNI_ABON        
  Begin          
   EXEC SP_TTULTI_ASTO_Q02 @ISCO_EMPR, @ISCO_USUA_MODI, @ISCO_UNID_TESO, @ISCO_TIPO_OPER, @IDFE_OPER, @OSNU_COMP_BANC OUTPUT, @ONNU_ERRO OUTPUT         
       
   IF (@ONNU_ERRO != 0)        
   Begin        
    RAISERROR 20001 'FIN DE ARCHIVO'        
    ROLLBACK TRANSACTION SP_TCMOVI_BANC_I11                
    RETURN        
   End        
  End         
  Else        
  Begin        
   Select @VSCO_NUEV_CHAR  = ISNULL(MAX(NU_COMP_BANC), '0')        
   From TCMOVI_BANC         
   Where CO_EMPR = @ISCO_EMPR         
   And  CO_BANC = @ISCO_BANC         
   And  NU_CNTA_BANC = @ISNU_CNTA_BANC         
   And  AA_BNCO = @ISAA_BNCO        
   And  MM_BNCO = @ISMM_BNCO         
   And  TI_MOVI_BANC = 'E'          
   And  NU_COMP_BANC LIKE '000%'        
    
   Select @VNCO_NUEV_NUME = Convert(Int , @VSCO_NUEV_CHAR) + 1        
    
   Select @VSCO_NUEV_CHAR = Convert(Char(8) , @VNCO_NUEV_NUME)        
    
   -- RELLENA DE CEROS HASTA 8 CARACTERES         
   Select @VSCO_NUEV_CHAR = ISNULL(REPLICATE('0',8- DATALENGTH(LTRIM(RTRIM(@VSCO_NUEV_CHAR)))),'') +LTRIM(RTRIM(@VSCO_NUEV_CHAR))        
    
   Select @OSNU_COMP_BANC = @VSCO_NUEV_CHAR         
    
   Select @VNUL_CORR_AJUS = 0        
   SELECT @VNUL_CORR_EGRE = @VNCO_NUEV_NUME         
  End        
     
  If @ISCO_TIPO_DOCU = @VSTI_DOCU_CHEQ     
  BEGIN     
   Select @VSNU_DOCU_BANC = ''    
           
   Select @VSTI_NUME_CHEQ = TI_NUME_CHEQ    
   From TMCNTA_BANC    
   Where CO_EMPR = @ISCO_EMPR    
   And  CO_BANC = @ISCO_BANC    
   And  NU_CNTA_BANC = @ISNU_CNTA_BANC    
    
   IF @VSTI_NUME_CHEQ = 'D'    
   BEGIN    
    SELECT @VSNU_CHEQ = @ISNU_DOCU_BANC    
   END    
   ELSE IF @VSTI_NUME_CHEQ = 'G'    
   BEGIN    
    -- Numero de cheque que se genero antes --    
    if @VSST_CHEQ_UNID = 'N'  --- Sin control Unidad por Chequera = Antes    
     Select @VSNU_ULTI_CHEQ = NU_ULTI_CHEQ,      
       @VNNU_SECU_CHEQ = NU_SECU      
     From TTSTOC_CHEQ      
     Where CO_EMPR = @ISCO_EMPR        
     And  CO_BANC = @ISCO_BANC        
     And  NU_CNTA_BANC = @ISNU_CNTA_BANC        
     And  SI_CHEQ_ACTU = 'S'         
     And  TI_SITU = 'ACT'          
    Else    
     Select @VSNU_ULTI_CHEQ = NU_ULTI_CHEQ,      
       @VNNU_SECU_CHEQ = NU_SECU      
     From TTSTOC_CHEQ    
     Where CO_EMPR = @ISCO_EMPR        
     And  CO_BANC = @ISCO_BANC        
     And  NU_CNTA_BANC = @ISNU_CNTA_BANC        
     And  SI_CHEQ_ACTU = 'S'         
     And  TI_SITU = 'ACT'          
     And  CO_UNID_CONC = @ISCO_UNID_TESO    
       
    Select @VSNU_CHEQ_ANTE = CONVERT(VARCHAR(15),CONVERT (int,@VSNU_ULTI_CHEQ ) + 1)        
    Select @VSNU_CHEQ = ISNULL(REPLICATE('0', 15- DATALENGTH(LTRIM(RTRIM(@VSNU_CHEQ_ANTE)))),'') +LTRIM(RTRIM(@VSNU_CHEQ_ANTE))            
   END       
  END    
  ELSE    
  BEGIN    
   Select @VSNU_CHEQ = ''    
   Select @VSNU_DOCU_BANC = @ISNU_DOCU_BANC    
  END    
  
  If @ISTI_PLAN = 'OBR'    
  BEGIN        
   Select @VSTI_ENTI = 'O'           
  END    
  Else        
  BEGIN    
   Select @VSTI_ENTI = 'E'        
  END    
     --SELECT @OSNU_COMP_BANC  
  
   
  /*SELECT @VSNO_UNID_CNTB = NO_UNID_CNTB   
  FROM TMUNID_CNTB  
  WHERE CO_EMPR = @ISCO_EMPR  
  AND CO_UNID_CNTB = @ISCO_UNID_TESO  
  
  SELECT @VSDE_GLOS_ULTI = @VSNO_UNID_CNTB + ' - ' + @ISCO_CPTO_FORM + ' - ' + @ISDE_CPTO*/  
  
  SELECT @VNNU_CANT_REGI = ISNULL(COUNT(CO_TRAB), 0)   
  FROM  #TWCHEQ_PLAN  
  
  SELECT @VSNO_EMPL = CONVERT(VARCHAR, @VNNU_CANT_REGI) + ' ' + 'PASS'  
  
  SELECT @VSST_OPCI_PLAN = ''  
    
  IF @ISOP_TRAB = 'JUD'  
  BEGIN  
   SELECT @VSDE_OBSE_0001 = 'RJ'  
   SELECT @VSDE_OBSE_0002 = ''  
   SELECT @VSNO_BENE = ''  
       
  END  
  
  IF @ISOP_TRAB = 'PLA'  
  BEGIN  
   SELECT @VSDE_OBSE_0001 = 'PLANILLA'  
   SELECT @VSDE_OBSE_0002 = @ISCO_CPTO_FORM  
   SELECT @VSNO_BENE = ''  
  
   IF ISNULL(@ISCO_CPTO_FORM, '') = ''  
   BEGIN  
    SELECT @VSST_OPCI_PLAN = 'FDP'  
   END  
   ELSE IF ISNULL(@ISCO_CPTO_FORM, '') != ''  
   BEGIN  
    SELECT @VSST_OPCI_PLAN = 'CPT'  
   END  
   SELECT @VSNO_BENE = ' ' + @ISAA_BNCO + ' - ' + @ISMM_BNCO  
    
  END  
  
  IF @ISOP_TRAB = 'AMP'  
  BEGIN  
   SELECT @VSDE_OBSE_0001 = 'AMPLIACION LBS'  
   --SELECT @VSDE_OBSE_0002 = 'FECHA AMPLIACION' + ' ' + CONVERT(VARCHAR, @CDFE_AMPL, 103)  
   SELECT @VSDE_OBSE_0002 = ''  
   SELECT @VSNO_BENE = ''  
    
  END  
  
  IF @ISOP_TRAB = 'LIB'  
  BEGIN  
   SELECT @VSDE_OBSE_0001 = 'LBS'  
   --SELECT @VSDE_OBSE_0002 = 'FECHA LIQUIDACION' + ' ' + CONVERT(VARCHAR, @CDFE_LIQU, 103)  
   SELECT @VSDE_OBSE_0002 = ''  
   SELECT @VSNO_BENE = ''  
   
  END  
  
  SELECT @VSDE_GLOS_ULTI = LEFT(@ISTI_PLAN + ' - ' + @VSDE_OBSE_0001 + ' - ' + @VSNO_EMPL + ' - ' + @VSDE_OBSE_0002 + @VSNO_BENE, 100)  
   
  --Inserta Cabecera    
  --CARLOS  
  SELECT @ISCO_EMPR, @ISCO_BANC, @ISNU_CNTA_BANC, @ISAA_BNCO, @ISMM_BNCO, 'E', @OSNU_COMP_BANC, @ISCO_UNID_TESO,        
   @IDFE_OPER, @ISCO_TIPO_OPER, @ISCO_SUBR, @ISCO_TIPO_DOCU, @VSNU_DOCU_BANC, @INFA_TIPO_CAMB, NULL, @VSNU_CHEQ,        
   @INIM_TOTA, @IDFE_CHEQ, NULL, NULL, NULL, NULL, NULL, NULL, NULL,         
   'N', 'N', NULL, NULL, @VSDE_GLOS_ULTI, 'N', NULL, 'ACT', @ISCO_USUA_MODI, @ISCO_USUA_MODI, NULL, NULL, @VNNU_SECU_CHEQ  
    
  Insert Into TCMOVI_BANC(        
   CO_EMPR, CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO, TI_MOVI_BANC, NU_COMP_BANC, CO_UNID_CONC,     
   FE_OPER, CO_TIPO_OPER, CO_SUBR, CO_TIPO_DOCU, NU_DOCU_BANC, FA_TIPO_CAMB, CO_BANC_CHEQ, NU_CHEQ,         
   IM_MOVI, FE_CHEQ,  CO_ENTR_REND, FE_DISP, FE_ENTR_CHEQ, FE_PROG_CHEQ, TI_ENTI, CO_ENTI, DE_NOMB_ORDE,         
   SI_SOLO_BANC, SI_OPER_CONC, AA_CONC, MM_CONC, DE_OBSE, ST_CONT, NU_PROC, TI_SITU,CO_USUA_CREA,        
   CO_USUA_MODI, CO_GRUP_CONC, NU_SOLI, NU_CHEQ_USAD)            
  Values (      
   @ISCO_EMPR, @ISCO_BANC, @ISNU_CNTA_BANC, @ISAA_BNCO, @ISMM_BNCO, 'E', @OSNU_COMP_BANC, @ISCO_UNID_TESO,        
   @IDFE_OPER, @ISCO_TIPO_OPER, @ISCO_SUBR, @ISCO_TIPO_DOCU, @VSNU_DOCU_BANC, @INFA_TIPO_CAMB, NULL, @VSNU_CHEQ,        
   @INIM_TOTA, @IDFE_CHEQ, NULL, NULL, NULL, NULL, NULL, NULL, NULL,         
   'N', 'N', NULL, NULL, @VSDE_GLOS_ULTI, 'N', NULL, 'ACT', @ISCO_USUA_MODI, @ISCO_USUA_MODI, NULL, NULL, @VNNU_SECU_CHEQ)              
     
  If @@error <> 0        
  Begin        
   Rollback tran SP_TCMOVI_BANC_I11        
   Return        
  End       
  
    --Actualiza Numero de Cheques SI es GENERADO    
  IF @VSTI_NUME_CHEQ = 'G'    
  BEGIN    
   If @VSST_CHEQ_UNID = 'N'  --- Sin control Unidad por Chequera = Antes       
   BEGIN    
    Update TTSTOC_CHEQ        
    Set  NU_ULTI_CHEQ = @VSNU_CHEQ , FE_ULTI_CHEQ = @IDFE_OPER,        
      FE_USUA_MODI = GETDATE(), CO_USUA_MODI = @ISCO_USUA_MODI        
    Where CO_EMPR = @ISCO_EMPR          
    and  CO_BANC = @ISCO_BANC         
    and  NU_CNTA_BANC = @ISNU_CNTA_BANC       
    and  SI_CHEQ_ACTU = 'S'        
   END    
   Else    
   BEGIN    
    Update TTSTOC_CHEQ        
    Set  NU_ULTI_CHEQ = @VSNU_CHEQ , FE_ULTI_CHEQ = @IDFE_OPER,        
      FE_USUA_MODI = GETDATE(), CO_USUA_MODI = @ISCO_USUA_MODI        
    Where CO_EMPR = @ISCO_EMPR          
    and  CO_BANC = @ISCO_BANC         
    and  NU_CNTA_BANC = @ISNU_CNTA_BANC         
    and  SI_CHEQ_ACTU = 'S'    
    And  CO_UNID_CONC = @ISCO_UNID_TESO    
   END    
   If @@error <> 0        
   Begin        
    Rollback tran SP_TCMOVI_BANC_I11          
    Return        
   End      
        
  END      
     
  -- Actualizando el numero de cheque en la tabla temporal para los trabajadores --    
    
  Update #TWCHEQ_PLAN     
  Set  NU_COMP_BANC = @OSNU_COMP_BANC     
  --WHERE CURRENT OF CU_TCMOVI_BANC_I11_1         
     
  ----------- Actualiza los Correlativos ------------------     
  If @VSST_INTE_BACH = 'S' OR @ISST_ASTO_RESU = 'S' OR         
  @ISCO_TIPO_OPER = @VSTI_OPNI_CARG OR @ISCO_TIPO_OPER = @VSTI_OPNI_ABON        
  Begin            
     
   If @ISTI_CORR_INEG = 'N'        
   Begin        
    Select @VNUL_CORR_EGRE = UL_CORR_EGRE         
    From TMSABA_MENS        
    WHERE CO_EMPR = @ISCO_EMPR          
    AND  CO_BANC = @ISCO_BANC         
    AND  NU_CNTA_BANC = @ISNU_CNTA_BANC     
    AND  AA_BNCO = @ISAA_BNCO         
    AND  MM_BNCO = @ISMM_BNCO         
    
    Update TMSABA_MENS        
    Set  UL_CORR_EGRE = @VNUL_CORR_EGRE + 1 + @VNUL_CORR_AJUS,     
      CO_USUA_MODI = @ISCO_USUA_MODI,         
      FE_USUA_MODI = GETDATE()        
    Where CO_EMPR = @ISCO_EMPR         
    And  CO_BANC = @ISCO_BANC         
    And  NU_CNTA_BANC = @ISNU_CNTA_BANC         
    And  AA_BNCO = @ISAA_BNCO         
    And  MM_BNCO = @ISMM_BNCO        
    
    If @@error <> 0        
    Begin        
     Rollback tran SP_TCMOVI_BANC_I11        
     Return        
    End        
   End        
   Else        
   Begin        
    Select @VNUL_CORR_INEG = UL_CORR_INEG         
    From TMSABA_MENS        
    WHERE CO_EMPR = @ISCO_EMPR          
    AND  CO_BANC = @ISCO_BANC         
    AND  NU_CNTA_BANC = @ISNU_CNTA_BANC         
    AND  AA_BNCO = @ISAA_BNCO          
    AND  MM_BNCO = @ISMM_BNCO         
    
    Update TMSABA_MENS        
    Set  UL_CORR_INEG = @VNUL_CORR_INEG + 1 + @VNUL_CORR_AJUS,     
      CO_USUA_MODI = @ISCO_USUA_MODI,        
      FE_USUA_MODI = GETDATE()        
    Where CO_EMPR = @ISCO_EMPR         
    And  CO_BANC = @ISCO_BANC         
    And  NU_CNTA_BANC = @ISNU_CNTA_BANC         
    And  AA_BNCO = @ISAA_BNCO         
    And  MM_BNCO = @ISMM_BNCO        
    
    If @@error <> 0        
    Begin        
     Rollback tran SP_TCMOVI_BANC_I11        
     Return        
    End        
   End        
  End       
    
 Declare CU_TCMOVI_BANC_I11_1 Cursor For        
 Select  CO_TRAB, NO_TRAB, NU_DATO_CALC, CO_MONE, FE_OPER, FA_TIPO_CAMB,     
   CO_TIPO_OPER, CO_SUBR, ISNULL(NO_BENE,''), FE_AMPL, FE_LIQU, NU_DOCU_BANC, NU_DATO_CONV,     
   NU_CHEQ_USAD, FE_CHEQ     
 From #TWCHEQ_PLAN        
        
 Open CU_TCMOVI_BANC_I11_1         
 Fetch CU_TCMOVI_BANC_I11_1         
 Into @CSCO_TRAB, @CSNO_TRAB, @CNNU_DATO_CALC, @CSCO_MONE, @CDFE_OPER, @CNFA_TIPO_CAMB,     
   @CSCO_TIPO_OPER, @CSCO_SUBR, @CSNO_BENE, @CDFE_AMPL, @CDFE_LIQU, @CSNU_DOCU_BANC,     
   @CNNU_DATO_CONV, @CNNU_CHEQ_USAD, @CDFE_CHEQ         
    
 Select @VNFE_0001  = @@FETCH_STATUS        
    
 While (@VNFE_0001 = 0)        
 Begin        
  If (@VNFE_0001 < 0)        
  Begin           
   Close CU_TCMOVI_BANC_I11_1        
   Deallocate CU_TCMOVI_BANC_I11_1        
   Return    
  End          
    
  SELECT @VNNU_SECU_DIST = ''    
  SELECT @VSCO_CNTA_EMPR = ''    
    
  --Obtenemos Secuencial    
  Select  @VNNU_SECU_DIST = IsNull(Max(NU_SECU), 0)     
  From  TDBANC_DIST    
  Where  CO_EMPR = @ISCO_EMPR    
  And CO_UNID_CONC = @ISCO_UNID_TESO    
  And CO_BANC = @ISCO_BANC    
  And NU_CNTA_BANC = @ISNU_CNTA_BANC    
  And AA_BNCO =  @ISAA_BNCO    
  And MM_BNCO =  @ISMM_BNCO    
  And TI_MOVI_BANC = 'E'    
  And NU_COMP_BANC = @OSNU_COMP_BANC    
     
  SELECT @VNNU_SECU_DIST = @VNNU_SECU_DIST + 1    
    
  --Obtenemos Cuenta Contable por el Tipo de Operación    
  Select @VSCO_CNTA_EMPR = ISNULL(CO_CNTA_EMPR,'')     
  FROM TDTIPO_OPER    
  Where CO_EMPR = @ISCO_EMPR    
  And  CO_TIPO_OPER = @ISCO_TIPO_OPER    
  And  TI_MOVI = 'CAR'    
    
  SELECT @VNIM_MOVI = @CNNU_DATO_CONV    
       
  --INSERTAMOS DETALLE (DISTRIBUCION)    
  SELECT @VSCO_CNTA_EMPR  
  EXEC SP_TDMOVI_BANC_I04 @ISCO_EMPR, @ISCO_USUA_MODI, @ISCO_BANC, @ISNU_CNTA_BANC,@ISAA_BNCO, @ISMM_BNCO,    
  'E', @OSNU_COMP_BANC, @VNNU_SECU_DIST, @VSCO_CNTA_EMPR, 'CAR', @VSTI_ENTI, @CSCO_TRAB, NULL, 'M', 100,     
  @VNIM_MOVI, NULL, NULL, NULL, 'I', @VSDE_GLOS_ULTI, @ISCO_UNID_TESO    
    
  If @@error <> 0        
  Begin        
   Rollback tran SP_TCMOVI_BANC_I11        
   Close CU_TCMOVI_BANC_I11_1        
   Deallocate CU_TCMOVI_BANC_I11_1        
   Return        
  End      
    
  -- Inserta a la tabla TDTRAB_PROC para grabar los empleados que se le ha girado un cheque --    
  Insert into TDTRAB_PROC (        
   CO_EMPR, CO_UNID_CNTB, CO_TRAB, CO_PLAN, NU_ANNO, NU_PERI, CO_CPTO_FORM, NU_SECU, CO_MONE, IM_TRAB_CALC, CO_BANC,     
   NU_CNTA_BANC, NU_COMP_BACA, FE_OPER, FA_TIPO_CAMB, CO_TIPO_OPER, CO_SUBR, ST_OPCI_TRAB, NO_BENE, FE_AMPL, FE_LIQU, ST_GENE_COMP,      
   IM_TRAB_CONV, NU_CHEQ_USAD, CO_TIPO_DOCU, NU_DOCU_BANC, FE_CHEQ, ST_OPCI_PLAN, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)        
  Values (@ISCO_EMPR, @ISCO_UNID_PLAN, @CSCO_TRAB, @ISTI_PLAN, @INNU_ANNO, @INNU_PERI, @ISCO_CPTO_FORM, @VNNU_SECU,         
   @CSCO_MONE, @CNNU_DATO_CALC, @ISCO_BANC, @ISNU_CNTA_BANC, @OSNU_COMP_BANC, @IDFE_OPER,          
   @INFA_TIPO_CAMB, @ISCO_TIPO_OPER, @ISCO_SUBR, @ISOP_TRAB, @CSNO_BENE, @CDFE_AMPL, @CDFE_LIQU, 'S', @CNNU_DATO_CONV,     
   @INNU_CHEQ_USAD, @ISCO_TIPO_DOCU, @ISNU_DOCU_BANC, @IDFE_CHEQ, @VSST_OPCI_PLAN, @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE() )        
     
  If @@error <> 0        
  Begin        
   Rollback tran SP_TCMOVI_BANC_I11     
   Close CU_TCMOVI_BANC_I11_1        
   Deallocate CU_TCMOVI_BANC_I11_1         
   Return        
  End        
    
 Fetch CU_TCMOVI_BANC_I11_1         
 Into @CSCO_TRAB, @CSNO_TRAB, @CNNU_DATO_CALC, @CSCO_MONE, @CDFE_OPER, @CNFA_TIPO_CAMB,     
   @CSCO_TIPO_OPER, @CSCO_SUBR, @CSNO_BENE, @CDFE_AMPL, @CDFE_LIQU, @CSNU_DOCU_BANC,     
   @CNNU_DATO_CONV, @CNNU_CHEQ_USAD, @CDFE_CHEQ       
     
 Select @VNFE_0001 = @@FETCH_STATUS        
 End            
 Close CU_TCMOVI_BANC_I11_1        
 Deallocate CU_TCMOVI_BANC_I11_1      
    
 -- Generación Voucher Contable  --     
 If @VSST_INTE_BACH = 'N' AND @ISST_ASTO_RESU = 'N' AND         
 @ISCO_TIPO_OPER != @VSTI_OPNI_CARG AND @ISCO_TIPO_OPER != @VSTI_OPNI_ABON        
 Begin          
  Select @VNAA_BNCO = CONVERT(INT,@ISAA_BNCO)        
  Select @VNMM_BNCO = CONVERT(INT,@ISMM_BNCO)        
    
  EXEC SP_TTPROC_INTE_I64 @ISCO_EMPR, @ISCO_USUA_MODI, @ISCO_UNID_TESO, @ISCO_BANC, @ISNU_CNTA_BANC, '', @VNAA_BNCO, @VNMM_BNCO, @IDFE_OPER, @OSNU_COMP_BANC, 'S'        
    
  If @@error <> 0        
  Begin        
   Rollback tran SP_TCMOVI_BANC_I11        
   Close CU_TCMOVI_BANC_I11_1        
   Deallocate CU_TCMOVI_BANC_I11_1        
   Return        
  End        
 End        
    
 Select Distinct @VSCO_OPRC_CNTB = CO_OPRC_CNTB From TDTIPO_OPER Where CO_EMPR = @ISCO_EMPR And CO_TIPO_OPER = @ISCO_TIPO_OPER        
    
 Delete TTINTE_CNDE        
 Where CO_EMPR = @ISCO_EMPR        
 And  NU_CNTB_EMPR = 1        
 And  CO_UNID_CNTB = @ISCO_UNID_TESO        
 And  CO_OPRC_CNTB = @VSCO_OPRC_CNTB        
 And  NU_ANNO      = @VNAA_BNCO        
 And  NU_MESE      = @VNMM_BNCO        
 And  NU_ASTO      = @OSNU_COMP_BANC        
    
 Update TCMOVI_BANC        
 Set  ST_CONT = 'P',      
   CO_USUA_MODI = @ISCO_USUA_MODI,        
   FE_USUA_MODI = GETDATE()        
 Where CO_EMPR  = @ISCO_EMPR        
 And  CO_BANC = @ISCO_BANC        
 And  NU_CNTA_BANC = @ISNU_CNTA_BANC        
 And  AA_BNCO = @ISAA_BNCO        
 And  MM_BNCO = @ISMM_BNCO        
 And  TI_MOVI_BANC = 'E'        
 And  NU_COMP_BANC = @OSNU_COMP_BANC          
        
Commit Tran SP_TCMOVI_BANC_I11        
        
RETURN        
        
/*------------------------ Fin ------------------------------*/   
  
  
  
  
GO
